package com.lxmes.business.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.lxmes.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.lxmes.common.core.domain.BaseEntity;

/**
 * 订单成本核算对象 zc_order_cost_accounting
 *
 * @author lx
 * @date 2023-06-21
 */
@ApiModel(value = "ZcOrderCostAccounting", description = "订单成本核算对象")
public class ZcOrderCostAccounting extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    @ApiModelProperty("id")
    private Long id;

    /** 公司名称 */
    @Excel(name = "公司名称")
    @ApiModelProperty("公司名称")
    private String companyName;

    /** 公司代码 */
    @Excel(name = "公司代码")
    @ApiModelProperty("公司代码")
    private String companyCode;

    /** 订单类型 */
    @Excel(name = "订单类型")
    @ApiModelProperty("订单类型")
    private String orderType;

    /** 订单编号 */
    @Excel(name = "订单编号")
    @ApiModelProperty("订单编号")
    private String orderNumber;

    /** 项目单位 */
    @Excel(name = "项目单位")
    @ApiModelProperty("项目单位")
    private String projectUnit;

    /** 物料类型 */
    @Excel(name = "物料类型")
    @ApiModelProperty("物料类型")
    private String materialType;

    /** 物料名称 */
    @Excel(name = "物料名称")
    @ApiModelProperty("物料名称")
    private String materialName;

    /** 物料号 */
    @Excel(name = "物料号")
    @ApiModelProperty("物料号")
    private String materialNumber;

    /** 规格型号 */
    @Excel(name = "规格型号")
    @ApiModelProperty("规格型号")
    private String specification;

    /** 物料单位 */
    @Excel(name = "物料单位")
    @ApiModelProperty("物料单位")
    private String materialUnit;

    /** 条形码 */
    @Excel(name = "条形码")
    @ApiModelProperty("条形码")
    private String barcode;

    /** 供应商编码 */
    @Excel(name = "供应商编码")
    @ApiModelProperty("供应商编码")
    private String supplierCode;

    /** 供应商名称 */
    @Excel(name = "供应商名称")
    @ApiModelProperty("供应商名称")
    private String supplierName;

    /** 订单数量 */
    @Excel(name = "订单数量")
    @ApiModelProperty("订单数量")
    private BigDecimal orderQuantity;

  /** 出库数量 */
    @Excel(name = "出库数量")
    @ApiModelProperty("出库数量")
    private BigDecimal outboundQuantity;

    /** 出库单号 */
    @Excel(name = "出库单号")
    @ApiModelProperty("出库单号")
    private String outboundNumber;

    /** 出库日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出库日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("出库日期")
    private Date outboundDate;

    /** 结算单号 */
    @Excel(name = "结算单号")
    @ApiModelProperty("结算单号")
    private String settlementNumber;

    /** 结算数量 */
    @Excel(name = "结算数量")
    @ApiModelProperty("结算数量")
    private BigDecimal settlementQuantity;

    /** 结算日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结算日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("结算日期")
    private Date settlementDate;

    /** 单价（不含税） */
    @Excel(name = "单价", readConverterExp = "不=含税")
    @ApiModelProperty("单价（不含税）")
    private BigDecimal unitPriceExclTax;

    /** 金额（不含税） */
    @Excel(name = "金额", readConverterExp = "不=含税")
    @ApiModelProperty("金额（不含税）")
    private BigDecimal amountExclTax;

    /** 税率 */
    @Excel(name = "税率")
    @ApiModelProperty("税率")
    private BigDecimal taxRate;

    /** 单价（含税） */
    @Excel(name = "单价", readConverterExp = "含=税")
    @ApiModelProperty("单价（含税）")
    private BigDecimal unitPriceInclTax;

    /** 金额（含税） */
    @Excel(name = "金额", readConverterExp = "含=税")
    @ApiModelProperty("金额（含税）")
    private BigDecimal amountInclTax;

    /** 计划单价（不含税） */
    @Excel(name = "计划单价", readConverterExp = "不=含税")
    @ApiModelProperty("计划单价（不含税）")
    private BigDecimal plannedUnitPriceExclTax;

    /** 计划金额（不含税） */
    @Excel(name = "计划金额", readConverterExp = "不=含税")
    @ApiModelProperty("计划金额（不含税）")
    private BigDecimal plannedAmountExclTax;

    /** 差额 */
    @Excel(name = "差额")
    @ApiModelProperty("差额")
    private BigDecimal difference;

    /** 核算日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "核算日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("核算日期")
    private Date accountingDate;

    /** 核算人 */
    @Excel(name = "核算人")
    @ApiModelProperty("核算人")
    private String accountant;

    /** 完成投资率 */
    @Excel(name = "完成投资率")
    @ApiModelProperty("完成投资率")
    private BigDecimal completionInvestmentRate;

    @Excel(name = "项目完成率")
    @ApiModelProperty("项目完成率")
    private BigDecimal completionProjectRate;

    /** 核算状态 */
    @Excel(name = "核算状态")
    @ApiModelProperty("核算状态")
    private String accountingStatus;

    /** 部门数据隔离代码 */
    private Long deptId;

    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }



    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setCompanyName(String companyName)
    {
        this.companyName = companyName;
    }

    public String getCompanyName()
    {
        return companyName;
    }
    public void setCompanyCode(String companyCode)
    {
        this.companyCode = companyCode;
    }

    public String getCompanyCode()
    {
        return companyCode;
    }
    public void setOrderType(String orderType)
    {
        this.orderType = orderType;
    }

    public String getOrderType()
    {
        return orderType;
    }
    public void setOrderNumber(String orderNumber)
    {
        this.orderNumber = orderNumber;
    }

    public String getOrderNumber()
    {
        return orderNumber;
    }
    public void setProjectUnit(String projectUnit)
    {
        this.projectUnit = projectUnit;
    }

    public String getProjectUnit()
    {
        return projectUnit;
    }
    public void setMaterialType(String materialType)
    {
        this.materialType = materialType;
    }

    public String getMaterialType()
    {
        return materialType;
    }
    public void setMaterialName(String materialName)
    {
        this.materialName = materialName;
    }

    public String getMaterialName()
    {
        return materialName;
    }
    public void setMaterialNumber(String materialNumber)
    {
        this.materialNumber = materialNumber;
    }

    public String getMaterialNumber()
    {
        return materialNumber;
    }
    public void setSpecification(String specification)
    {
        this.specification = specification;
    }

    public String getSpecification()
    {
        return specification;
    }
    public void setMaterialUnit(String materialUnit)
    {
        this.materialUnit = materialUnit;
    }

    public String getMaterialUnit()
    {
        return materialUnit;
    }
    public void setBarcode(String barcode)
    {
        this.barcode = barcode;
    }

    public String getBarcode()
    {
        return barcode;
    }
    public void setSupplierCode(String supplierCode)
    {
        this.supplierCode = supplierCode;
    }

    public String getSupplierCode()
    {
        return supplierCode;
    }
    public void setSupplierName(String supplierName)
    {
        this.supplierName = supplierName;
    }

    public String getSupplierName()
    {
        return supplierName;
    }
    public void setOutboundQuantity(BigDecimal outboundQuantity)
    {
        this.outboundQuantity = outboundQuantity;
    }

    public BigDecimal getOutboundQuantity()
    {
        return outboundQuantity;
    }
    public void setOutboundNumber(String outboundNumber)
    {
        this.outboundNumber = outboundNumber;
    }

    public String getOutboundNumber()
    {
        return outboundNumber;
    }
    public void setOutboundDate(Date outboundDate)
    {
        this.outboundDate = outboundDate;
    }

    public Date getOutboundDate()
    {
        return outboundDate;
    }
    public void setSettlementNumber(String settlementNumber)
    {
        this.settlementNumber = settlementNumber;
    }

    public String getSettlementNumber()
    {
        return settlementNumber;
    }
    public void setSettlementQuantity(BigDecimal settlementQuantity)
    {
        this.settlementQuantity = settlementQuantity;
    }

    public BigDecimal getSettlementQuantity()
    {
        return settlementQuantity;
    }
    public void setSettlementDate(Date settlementDate)
    {
        this.settlementDate = settlementDate;
    }

    public Date getSettlementDate()
    {
        return settlementDate;
    }
    public void setUnitPriceExclTax(BigDecimal unitPriceExclTax)
    {
        this.unitPriceExclTax = unitPriceExclTax;
    }

    public BigDecimal getUnitPriceExclTax()
    {
        return unitPriceExclTax;
    }
    public void setAmountExclTax(BigDecimal amountExclTax)
    {
        this.amountExclTax = amountExclTax;
    }

    public BigDecimal getAmountExclTax()
    {
        return amountExclTax;
    }
    public void setTaxRate(BigDecimal taxRate)
    {
        this.taxRate = taxRate;
    }

    public BigDecimal getTaxRate()
    {
        return taxRate;
    }
    public void setUnitPriceInclTax(BigDecimal unitPriceInclTax)
    {
        this.unitPriceInclTax = unitPriceInclTax;
    }

    public BigDecimal getUnitPriceInclTax()
    {
        return unitPriceInclTax;
    }
    public void setAmountInclTax(BigDecimal amountInclTax)
    {
        this.amountInclTax = amountInclTax;
    }

    public BigDecimal getAmountInclTax()
    {
        return amountInclTax;
    }
    public void setPlannedUnitPriceExclTax(BigDecimal plannedUnitPriceExclTax)
    {
        this.plannedUnitPriceExclTax = plannedUnitPriceExclTax;
    }

    public BigDecimal getPlannedUnitPriceExclTax()
    {
        return plannedUnitPriceExclTax;
    }
    public void setPlannedAmountExclTax(BigDecimal plannedAmountExclTax)
    {
        this.plannedAmountExclTax = plannedAmountExclTax;
    }

    public BigDecimal getPlannedAmountExclTax()
    {
        return plannedAmountExclTax;
    }
    public void setDifference(BigDecimal difference)
    {
        this.difference = difference;
    }

    public BigDecimal getDifference()
    {
        return difference;
    }
    public void setAccountingDate(Date accountingDate)
    {
        this.accountingDate = accountingDate;
    }

    public Date getAccountingDate()
    {
        return accountingDate;
    }
    public void setAccountant(String accountant)
    {
        this.accountant = accountant;
    }

    public String getAccountant()
    {
        return accountant;
    }
    public void setCompletionInvestmentRate(BigDecimal completionInvestmentRate)
    {
        this.completionInvestmentRate = completionInvestmentRate;
    }

    public BigDecimal getCompletionInvestmentRate()
    {
        return completionInvestmentRate;
    }
    public void setAccountingStatus(String accountingStatus)
    {
        this.accountingStatus = accountingStatus;
    }

    public String getAccountingStatus()
    {
        return accountingStatus;
    }

    public BigDecimal getOrderQuantity() {
        return orderQuantity;
    }

    public void setOrderQuantity(BigDecimal orderQuantity) {
        this.orderQuantity = orderQuantity;
    }

    public BigDecimal getCompletionProjectRate() {
        return completionProjectRate;
    }

    public void setCompletionProjectRate(BigDecimal completionProjectRate) {
        this.completionProjectRate = completionProjectRate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("companyName", getCompanyName())
            .append("companyCode", getCompanyCode())
            .append("orderType", getOrderType())
            .append("orderNumber", getOrderNumber())
            .append("projectUnit", getProjectUnit())
            .append("materialType", getMaterialType())
            .append("materialName", getMaterialName())
            .append("materialNumber", getMaterialNumber())
            .append("specification", getSpecification())
            .append("materialUnit", getMaterialUnit())
            .append("barcode", getBarcode())
            .append("supplierCode", getSupplierCode())
            .append("supplierName", getSupplierName())
            .append("outboundQuantity", getOutboundQuantity())
            .append("outboundNumber", getOutboundNumber())
            .append("outboundDate", getOutboundDate())
            .append("settlementNumber", getSettlementNumber())
            .append("settlementQuantity", getSettlementQuantity())
            .append("settlementDate", getSettlementDate())
            .append("unitPriceExclTax", getUnitPriceExclTax())
            .append("amountExclTax", getAmountExclTax())
            .append("taxRate", getTaxRate())
            .append("unitPriceInclTax", getUnitPriceInclTax())
            .append("amountInclTax", getAmountInclTax())
            .append("plannedUnitPriceExclTax", getPlannedUnitPriceExclTax())
            .append("plannedAmountExclTax", getPlannedAmountExclTax())
            .append("difference", getDifference())
            .append("accountingDate", getAccountingDate())
            .append("accountant", getAccountant())
            .append("completionInvestmentRate", getCompletionInvestmentRate())
            .append("accountingStatus", getAccountingStatus())
            .append("remark", getRemark())
            .toString();
    }
}
